package com.msh.frame.client.base;

import com.msh.frame.client.common.Result;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author shihu 基本的service方法
 */
public interface BaseService<T, Q> {

  /**
   *
   */
  long insert(T param);

  /**
   *
   */
  int insertCollection(Collection<T> param);

  /**
   *
   */
  void update(T param);

  /**
   *
   */
  T get(Long id);

  /**
   * 通过ids获取
   */
  List<T> getByIds(Collection<Long> ids);

  /**
   *
   */
  int count(Q param);

  /**
   *
   */
  List<T> list(Q param);

  /**
   *
   */
  Result<List<T>> page(Q param);

  /**
   *
   */
  T listOne(Q param);

  /**
   *
   */
  int delete(Long id);

  /**
   *
   */
  int deleteByIds(Collection<Long> ids);

  /**
   * 调用deleteByIds处理
   */
  int deleteByQo(Q q);


  Map<Long, T> map(Q q);

  Map<Long, T> map(Collection<Long> ids);
}
